using System;
using System.Data;
using System.Text;
using System.IO;
using System.ComponentModel;
using System.Collections.Generic;
using MySql.Data.MySqlClient;
using MySql.Data.Types;


namespace Servidor
{
	/*
	 * Clase para acceder a la Base de datos MySQL
	 */
	public class BD
	{
		/*
		 * String que contiene los datos de coneccion
		 */
		private static string Provider = "Data Source=localhost;Database=servidor_video;User ID=root;Password=root";
		/*
		 * Nombre de archivo generado (Xml)
		 */
		private static string archivo;
		/*
		 * Nombre de tabla
		 */
		private static string TableName="";
		/*
		 * Nombre del nodo Root para el archivo XML
		 */
		private static string XMLRootNodeName ="Root";
		
		/*
		 * Constructor
		 */
		public BD ()
		{
		}//BD
		
		/*
		 * Metodo que obtiene el listado de videos
		 * retornando un archivo XML
		 * @param Guid id del cliente
		 * @return String nombre del archivo generado (Xml)
		 */
		public static List<VideoList> List(Guid clientID){
			archivo = Directory.GetCurrentDirectory()+"/xml/videolist"+clientID+".xml";
		    MySqlConnection connection = new MySqlConnection(Provider);
			connection.Open();
			MySqlCommand command = connection.CreateCommand ();
			command.CommandText = "select * from videolist";
			//MySqlDataAdapter adapter = new MySqlDataAdapter();
			MySqlDataReader dr = command.ExecuteReader(CommandBehavior.CloseConnection);
			List<VideoList> listado = new List<VideoList>();
			while(dr.Read()){
				VideoList video = new VideoList();
				video.codigo_imagen = dr.GetString("imagen");
				video.duracion      = dr.GetString("duracion");
				video.id            = dr.GetInt32("id");
				video.path          = dr.GetString("path");
				video.titulo        = dr.GetString("titulo");
				listado.Add(video);
			}
			dr.Close();
			return listado;
			
		}//List
		
		/*
		 * Obtiene el Path donde existe el video identificado por un ID
		 * @param int videoID
		 * @return string Path del video
		 */
		public static string getVideoPath(int videoID){
			string sql = "SELECT path FROM videolist where id LIKE "+videoID.ToString();
			
			MySqlConnection connection = new MySqlConnection(Provider);
    		//MySqlDataAdapter adapter = new MySqlDataAdapter();
      	    connection.Open();
      		MySqlCommand query = new MySqlCommand(sql, connection);
      	    MySqlDataReader reader = query.ExecuteReader();
			reader.Read();
			string result;
			if(reader.HasRows){
				result = reader.GetString("path").ToString();
			}else{
				result = "None";
			}//if
      		connection.Close();
			return result;
		}//getVideoPath
	}
}

